Grid computing services, utility-based data centers, and other types of resource-on-demand systems are becoming increasingly popular as a highly scalable means for utilizing computer resources to meet the computing demands of users.
Managing these resource-on-demand systems is a difficult task that typically requires a significant amount of time and labor. Resource-on-demand systems typically pre-allocate and pre-install servers and storage resources for customer applications. In order to meet predetermined quality of service (QoS) requirements, however, servers are typically over-provisioned and under utilized.
Determining the allocation of resources is an even more difficult task if user demand is for remote desktop sessions. Remote desktop sessions typically include a backend server providing a desktop for a user. A remote desktop session may include an operating system and the applications that a user would typically have access to if the user's desktop was created and executed by the user's personal computer. However, the remote desktop session is executed by a back-end system, and the user may access the remote desktop via a thin client.
Allocating resources for remote desktop sessions is difficult because a user may run any number of applications in the session at any time and because it is difficult to keep track of the demand for a large number of users over an extended period of time.